package com.miage.itrading.metier;

import java.util.ArrayList;
import java.util.List;

import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

import com.miage.itrading.entites.Cotation;

public class IndicateurSurCours {

	protected String nomIndicateur;
	protected List<Float> valeurs;
	protected int[] periodes;
	protected Cotation cotation;

	public IndicateurSurCours() {
		super();
		this.valeurs = new ArrayList<Float>();
		this.periodes = new int[3];
	}

	public IndicateurSurCours(String nomIndicateur, List<Float> valeurs,int[] periodes) {
		super();
		this.nomIndicateur = nomIndicateur;
		this.valeurs = valeurs;
		this.periodes = periodes;
	}


	public IndicateurSurCours(String nomIndicateur, List<Float> valeurs,int[] periodes, Cotation cotation) {
		super();
		this.nomIndicateur = nomIndicateur;
		this.valeurs = valeurs;
		this.periodes = periodes;
		this.cotation = cotation;
	}

	public XYItemRenderer getRenderer(){
		XYItemRenderer  newRenderer = new XYLineAndShapeRenderer(true, false);
		return newRenderer ;
	}
	
	public TimeSeriesCollection getDataset(){

		TimeSeriesCollection xydataset = new TimeSeriesCollection();
		TimeSeries series = new TimeSeries(nomIndicateur + getPeriode());
		for(int j = 0 ; j < valeurs.size(); ++j){
			series.add(new Day(cotation.getHistoriques().get(j+getPeriode()).getDate()),valeurs.get(j));
		}

		xydataset.addSeries(series);
		return xydataset;
	}
	
	public String getNomIndicateur() {
		return nomIndicateur;
	}
	
	
	public void setNomIndicateur(String nomIndicateur) {
		this.nomIndicateur = nomIndicateur;
	}
	public List<Float> getValeurs() {
		return valeurs;
	}
	public void setValeurs(List<Float> valeurs) {
		this.valeurs = valeurs;
	}
	
	public int getPeriode() {
		return periodes[0];
	}
	
	public int[] getPeriodes() {
		return periodes;
	}
	
	public void setPeriodes(int[] periodes) {
		this.periodes = periodes;
	}

	public Cotation getCotation() {
		return cotation;
	}

	public void setCotation(Cotation cotation) {
		this.cotation = cotation;
	}


}
